package org.sky.algorithm.linear;

/**
 * 循环列表
 *
 * @author fog
 * @date 2021/9/5
 */

public class LoopNode {

    /**
     * 节点数据
     */
    int data;

    /**
     * 下一个节点
     */
    LoopNode next = this;

    public LoopNode(int data) {
        this.data = data;
    }

    /**
     * 插入一个节点
     *
     * @param loopNode 插入的节点
     */
    public void addNode(LoopNode loopNode) {

        // 去除下一个节点
        LoopNode nextNode=next;
        // 把新的节点作为当前节点的下一个节点
        this.next=loopNode;
        // 把取出的节点赋给插入节点的下一个节点
        loopNode.next=nextNode;

    }

    /**
     * 为节点追回节点
     *
     * @return 下一个节点
     */
    public LoopNode next() {
        return this.next;
    }

    /**
     * 获取节点中的数据
     *
     * @return 节点数据
     */
    public int getData() {
        return this.data;
    }

    /**
     * 删除下一个节点
     */
    public void remove(){
        // 去除下下个节点赋给当前节点的下一个节点
        this.next=next.next;
    }


}
